package com.smt.modules.bus.service;

import com.baomidou.mybatisplus.service.IService;
import com.smt.common.utils.R;
import com.smt.modules.app.annotation.LoginUser;
import com.smt.modules.bus.entity.MemberUserEntity;
import com.smt.modules.bus.entity.TeamEntity;
import com.smt.modules.bus.vo.TeamVo;
import com.smt.modules.bus.vo.request.ProjectSiReq;
import org.springframework.web.bind.annotation.PathVariable;

import java.util.List;

/**
 * 团队管理
 *
 * @author zhangyi
 * @date 2018/10/10 15:13
 */
public interface TeamManagementService extends IService<MemberUserEntity> {
    /**
     * 获取该项目下的成员列表
     *
     * @param projectSiReq
     * @return
     */
    R list(ProjectSiReq projectSiReq);

    /**
     * 上传头像
     *
     * @param headImg
     * @param memberUserEntity
     * @return
     */
    R uploadHeadImg(String headImg, MemberUserEntity memberUserEntity);

    /**
     *  移除项目用户
     *
     * @param projectId
     * @param userId
     * @return
     */
    R remove(Long projectId,Long userId,MemberUserEntity entity);

    /**
     * 加入该公司
     *
     * @param creatorId
     * @param memberUserEntity
     * @return
     */
    R join(Long creatorId,MemberUserEntity memberUserEntity);

    /**
     * 获取所属项目下的成员
     *
     * @param creatorId
     * @return
     */
    List<TeamEntity> getMemberList(Long creatorId);

    /**
     * 获取该团队下的成员集合
     *
     * @param teamId
     * @param memberUserEntity
     * @return
     */
    R teamMembers(Long teamId,MemberUserEntity memberUserEntity);

    /**
     * 创建一个团队（在创建项目的时候）
     *
     * @param creatorId
     * @param projectId
     * @return
     */
    boolean createTeam(Long creatorId,Long projectId);
}
